package com.kurt.dto;

import lombok.Data;

import java.time.LocalDateTime;
import java.util.List;

/**
 * 组织DTO
 * 用于组织信息的传输
 */
@Data
public class OrganizationDTO {

    /**
     * 组织ID
     */
    private Long id;

    /**
     * 组织名称
     */
    private String name;

    /**
     * 父组织ID
     */
    private Long parentId;

    /**
     * 父组织名称
     */
    private String parentName;

    /**
     * 组织层级
     */
    private Integer level;

    /**
     * 排序号
     */
    private Integer sortOrder;

    /**
     * 状态
     */
    private Integer status;

    /**
     * 创建时间
     */
    private LocalDateTime createTime;

    /**
     * 更新时间
     */
    private LocalDateTime updateTime;

    /**
     * 备注
     */
    private String remark;

    /**
     * 组织扩展信息
     */
    private OrganizationExtensionDTO organizationExtension;

    /**
     * 子组织列表
     */
    private List<OrganizationDTO> children;

    /**
     * 组织扩展信息DTO
     */
    @Data
    public static class OrganizationExtensionDTO {

        /**
         * 组织编码
         */
        private String code;

        /**
         * 组织类型
         */
        private String type;

        /**
         * 负责人ID
         */
        private Long managerId;

        /**
         * 负责人姓名
         */
        private String managerName;

        /**
         * 联系电话
         */
        private String phone;

        /**
         * 邮箱
         */
        private String email;

        /**
         * 地址
         */
        private String address;

        /**
         * 组织描述
         */
        private String description;

        /**
         * 自定义字段1
         */
        private String customField1;

        /**
         * 自定义字段2
         */
        private String customField2;

        /**
         * 自定义字段3
         */
        private String customField3;
    }
}
